L'arithmétique

Quotient et reste

In [1]:
import math

dividende = 47
diviseur = 8
quotient = dividende // diviseur
reste = dividende % diviseur
print(quotient)
print(reste)
5
7

Liste des diviseurs

In [2]:
def diviseurs(nombre):
    "retourne la liste des diviseurs."
    limite=int(math.sqrt(nombre)+1)
    L_couples = [(x,nombre//x) for x in range(1,limite) if nombre%x==0]
    #print(L_couples)
    ensemble_diviseurs=set() # ensemble des diviseurs
    for (a,b) in L_couples :
        ensemble_diviseurs.add(a)
        ensemble_diviseurs.add(b)
    L_diviseurs=sorted(ensemble_diviseurs) #conversion en liste ordonnées.
    return L_diviseurs
In [3]:
diviseurs(18)
Out[3]:
[1, 2, 3, 6, 9, 18]

Tester si un nombre est premier

In [19]:
def est_premier(nombre) :
    "Un nombre est premier s'il a deux diviseurs"
    if len(diviseurs(nombre))==2 :
        return True
    else :
        return False
In [5]:
est_premier(17)
Out[5]:
True

Décomposition en facteurs premiers

In [11]:
def decomposition(nombre):
    "retourne la liste des facteurs premiers"
    L=diviseurs(nombre)
    if len(L)==1 :
        return [1]
    Decomposition=[]
    while len(L)>1 :
        L.pop(0)
        p=L[0]
        Decomposition.append(p)
        L=[k//p for k in L if k%p==0]
    return Decomposition
    
In [17]:
decomposition(123456789)
Out[17]:
[3, 3, 3607, 3803]
In [ ]: